//试输出斐波那契数列的前10项，即1、1、2、3、5、8、13、21、34、55

//缓存：将已经计算过的fib(n)缓存起来，避免重复计算。
let cache = {}

function fib(n) {

  if (n in cache) {
    return cache[n]
  }

  console.log('进入了函数fib(' + n + ')')

  let result = n === 0 || n === 1 ? 1 : fib(n - 1) + fib(n - 2)

  //将结果缓存起来 
  cache[n] = result

  return result
}

/* 
console.log(fib(0))
console.log(fib(1))
console.log(fib(2))
console.log(fib(3))
console.log(fib(4))
console.log(fib(5))
console.log(fib(6))
console.log(fib(7))
console.log(fib(8))
console.log(fib(9))*/

console.log(fib(10))